In computing, an emulator is hardware or software or both that duplicates (or emulates) the functions of a first computer system (the native computing environment (NCE)) in a different second computer system (host computing device), so that the emulated behavior closely resembles the behavior of the real system. This focus on reproduction of behavior is in contrast to some other forms of computer simulation, in which an abstract model of a system is being simulated.